package Tipos;

/**
 * Class OperaRela representa los operadores relacionales,
 * imita a un enumerado de C.
 * 
 * @author Martín Montalvo Martínez
 */
public class OperaRela{
    
    public static enum operaRela{MAYOR,MENOR,MAYORIGUA,MENORIGUA,DISTIN,IGUAL};
    
    private operaRela tipo;
    
    public OperaRela(){
        
    }
    
    /**
     *Crea un operador relacional a partir del enumerado
     */
    public OperaRela(operaRela opera){
        tipo=opera;
    }
    
    /**
     *Crea un operador relacional a partir de su valor en un String.
     *Si el valor del String no casa con ningún valor del enumerado crea por
     *defecto el operador MAYOR(>). A la hora de comparar la cadena no tiene en cuenta
     *las mayúsculas
     */
    public OperaRela(String opera){
        try{
            if(opera.compareTo(">")==0)
                tipo=operaRela.MAYOR;
            if(opera.compareTo("<")==0)
                tipo=operaRela.MENOR;
            if(opera.compareTo(">=")==0)
                tipo=operaRela.MAYORIGUA;
            if(opera.compareTo("<=")==0)
                tipo=operaRela.MENORIGUA;
            if(opera.compareTo("<>")==0)
                tipo=operaRela.DISTIN;
            if(opera.compareTo("=")==0)
                tipo=operaRela.IGUAL;
            //tipo=operaRela.valueOf(opera);
        }
        catch(IllegalArgumentException a){
            tipo=operaRela.valueOf("MAYOR");
        }
    }
    
    /**
     *Devuelve el valor del enumerado del operador
     */
    public String getTipo(){
        return tipo.toString();
    }
    
    /**
     *Devuelve el resultado de comparar los operadores relacionales.
     *Si devuelve Cierto son iguales, eoc son distintos
     */
    public Boolean equals(OperaRela oper2){
        if(tipo.toString()==oper2.toString())
            return true;
        return false;
    }
    
    public static void main(String args[]){
        OperaRela token= new OperaRela("=");
        System.out.println(token.getTipo());
        operaRela tipo;
        tipo=operaRela.IGUAL;
        
        OperaRela token2= new OperaRela(">");
        System.out.println(token2.getTipo());
    }
}
